YOU'LL NEED WORD WRAP ON TO READ THIS. IN SOME PARTS I PRESSED ENTER AT THE END OF THE LINE, SO BEST BE CAREFUL OF THAT WHEN PUTTING THIS IN THE MAG...







-------------------------
HOW I GOT STARTED WITH QB
-------------------------

NOTE: This article was originally written for QBCM, in response to Wildcard's reuqest for articles of this nature. Seeing as QBCM is dead however, I decided I'd send it to QB Express instead.

QB was a part of my life when it was my life, and the effort and time that I poured into QBCM in the early days, issue 2 in particular, reflects that.

The recent (and unexpected) resurgance in the QB scene reminds me of events gone past and things related to 2000. The scene I remember exists now only in my memory... a lot has changed, and yes so has the world, and much is no more now. 

I started coding in QB in 1995. Everything I knew of the language at the time I had gathered from a very simple book I discovered in the school library. Unfortunately, it was written for Spectrum users, and so most of the information was incompatible. My programming persuits were therefore limited mostly to text adventures for a long time. In hindsight, it's a miracle I stuck with it.

My skills slowly developed after I started reading the help file. To childish eyes, it seemed rediculously terse. They might as well have written it in a foreign language. In frustration, I sold my computer for R600 and bought a motorbike from my friend Bradley, who had a lot of bikes just lying about. My friend Andrew and I used to ride about in the sugarcane plantation nearby my house (he paid for the petrol, and in exchange I let him ride my bike). This move was understandably met by staunch dissaproval from my father, and I was forced to sell the bike a few months later. I used the money to buy another computer: a 286 with 640K and a monochrome (well, amber) monitor, which costed R850. (So at least I made a tidy profit on the bike. :P Not that it means a damn thing now... I recently got myself a Linux box: P233 MMX, 32MB, 2.1 gig HDD, monitor... everything, it even has a LAN card. It only costed R350 (that's about equal to 50 USD). Times sure have changed.) I didn't really mind though, Andrew moved to Cape Town and I had no one else to ride with (barring a bunch of guys in their late teens and early 20's who I sometimes hung with, to the complete dismay of my parents. Some day I'll have to tell you about the one time when Douglas, one of the smokers among them, accidently set fire to the sugarcane ("hey guys, what's that crackling sound?") and we had to make a quick get-away on our bikes, heheh. Good times.)

It turned out that the guy who bought my bike didn't know that you have to mix two-stroke oil with the petrol (even though I told him many times), so the engine was soon ruined. What a waste.

In late January '97 I was introduced to the QB community through my friend Petar (yes, that is the correct spelling) from school, who had an internet connection (still something quite rare in South Africa back then). Petar was a dark, strapping Yugoslavian refugee, already 6 feet tall and built like a tank. Though barely a teenager, he had a gruff voice that would surely strike fear even in the hearts of grown men, he already shaved, and his legs and arms were covered in an immense mass of bushy black hair. The other kids were understandably terrified of him, so he was a good friend to have. :) He hadn't been in the country for long, and his English (or the lack thereof) amused me and my schoolmates to no end. In typical Eastern-European style, he would often swap his v's and w's, leading to hilarious wonders such as "my computer has a wirus." Every time he tried to say the word 'volley ball', laugher shook the high heavens.

Amongst the treasures he downloaded, I was shocked to discover such masterpieces as Dark Crown, Wetspot 1, and the awesome Legend of Lith 2. ("Are you sure this is QB?!") All brand new games at the time. I hurriedly pieced together 'games' (I use that term very loosely) such as UFO and Pacland, which Petar then uploaded for me. Both were text-based action games, though Pacland turned out to be more of a strategy somehow. It was based on the code for a similar game called 'Zombie', undoubtedly a name rife with single entendre, the listings for which I had found in some old C64 games book. I wasn't much of a programmer, and as mentioned, I did them in a hurry, so not surprisingly, the ratings they recieved were dismal at best. (Apparantly the owner of one QB site wrote a small comment next to my games in the margin... I'm told it was something to the effect of "WHY??????" heheh.) I must admit though, those old days weren't quite as gold as some of the other 'oldies' among us might have you believe. Tuturials were still few and far between, and often left much to be desired. That, coupled with the weak processing power we had available to us at the time, not to mention the fact that the pricing of new computers back then was something quite disgraceful, did not bode well for the QB community. So admittedly, a lot of the games from back then were, politely spoken, pure shit.

Of course, my own skills reeked of baby diapers themselves, so I was impressed all the same. I think we've all come a very long way in the last 7 years. Unfortunately, I couldn't run most QB stuff on my own box, being stuck with a monochrome screen and what all. All I could really run for at least half of '97 was Rockwars -- a game I eventually did a remake of in 2000 -- and Kenneth Green's Dungeon of Motion and Sound. But it was better than nothing, and I was surprised to find so many other people who also liked QB. Confidence restored, I formed a 'company' (heheh) with Petar and two other guys from school; Kevin, a quiet German boy with strawberry blond hair, and Liam, a rebellious towheaded Irishman, with a reckless grin to match his nature, and pale blue eyes that looked exactly like frozen ice.

Determined to make our millions and take over the world, our new 'company' (you know what I mean) would meet up at Kevin's house every weekend and on holidays, to make revolutionary PC games, in Qbasic, that would ultimately take the world by storm. Apparantly Kevin had a friend of a friend of a friend who's uncle's mom's dog once saw this guy who could get a demo of our game on the cover of PC Gamer, and as far as we were concerned, our futures as multi-million dollar game programmers were as good as carved in stone. Of course, we spent most of that time at Kevin's playing Mech Warrior instead (actually, Kevin would play, the rest of us just had to sit there and watch), or playing basketball outside.

Disenchanted with the progress we hadn't made over 6 months or so, we decided that we needed our own office, and that building this in Kevin's back yard was somehow the answer. Convinced that this latest scheme would assure our success, we worked day and night at this over the Christmas holidays of '97, and it actually turned out surprisingly well (although Petar practically built the whole thing himself). The roof leaked when it rained and it lacked electricity -- not exactly the ideal headquarters for our multi-million dollar games studio -- but it was our headquarters, and we were proud of it right?

I would often go to Petar's house first to use the internet, and then we'd lug our computers all the way to Kevin's place later on. The one day it looked like it might rain, and we could hear thunder in the distance. We weren't too keen on having our computers rained on, obviously, so we started to run. You can imagine what this spectacle must have looked like to the passing motorists, and we were concerned that we might be arrested as burglars.

Come to think of it, it's a bloody miracle our hard-drive's didn't get bad sectors.

We held meetings in our 'headquarters' once in a while, but this was not all plain sailing at first. An unruly element tried for a time to disrupt our meetings by throwing stones and fire crackers on the roof of our shack, and even jumping from a high bank on to the roof and dancing on it. We were very eager to dash out and try conclusions with the young hooligans, but Petar, the oldest and most sensible among us, guessed that it was precisely what they hoped for and encouraged us to avoid a confrontation. Instead we ignored them and eventually the interference abated.

We didn't use our shack much due to the lack of electricity, so eventually Kevin's dad claimed it, and used it as a place to store some of the excess junk in the garage. 1998 passed quickly and aside from some mini-games I made, no one did anything much really, and barring an incident where Liam demonstrated his leet throwing, catching (and ultimately dropping and hence breaking) skills with Kevin's wireless mouse, thus leading to him being kicked out the group, nothing really changed.

Petar and I eventually stopped being friends after he accused me of stealing his Duke Nukem CD (which he later found in his CD-ROM drive...), Kevin emigrated to America, and that was the end of that. Although Liam and I remained friends, neither of us were interested in starting another game company. At the beginning of 1999, I finally got the internet at home, and I suppose this marked my real entrance into the QB community, because Petar had always hogged the keyboard back in the day. I used this new opportunity to download as much as I could, especially tutorials or code I could learn from, and I made massive strides in a very short time. In December 1999 I started using the QB chatroom at qbasic.com and several popular discussion boards, finally making me a QB'er in the fullest sense. Not long later, QB Cult Magazine, otherwise known as QBCM, was founded -- a project through which I hoped to share my knowledge and love of QB, and in part, to fill the massive hole in the scene that Qbasic: The Magazine had left.

At around the same time, Terry Cavanagh (Traveller), William Moores, Svante Ekholm Lindahl (AlienQB) and myself formed Dark Legends Software. We were just a newbie group really, and we only managed a few mini-games. Although it's highly unlikely that anyone but us remembers our group or anything we did -- we weren't Enhanced Creations, we weren't Darkness Ethereal -- it was and still is important to me, as it represents one of the happiest times in my life. 

I'm really glad that Wildcard wants to do this series on the history of the QB on the web, because I've always been really interested in QB history. But I'm going to let you in on a little secret seldom learnt and often forgotten... our community is built on the things we never see or hear about. It isn't the legends like Enhanced, or the classics like Dark Crown or Wetspot 2, that make our community what it is and was, what has kept it alive all this time. It's none of that. It's the friendships we make, even the enemies, the sleepless nights we spend finding that one last bug (for the tenth time heh), forgotten groups like Dark Legends, forgotten games like Rockwars 2000, like Black Hole, our forgotten flames and rants on our many forums, our impossible dreams, Dunric's quest to find a wife heh... so on so forth. These are things that you will never see mentioned in any magazines or articles, but lemme tell ya, this is the good stuff. It's the sort of stuff you'll still remember 20 years from now.

These are things that can exist now only in our thoughts... unless we put pen to paper (or fingers to keys, whatever floats your boat heh) and write them down. Behind the handles and (make-believe) company names there exists stories we know nothing about. In this article, some of mine have been revealed to you today.

I dissapeared from the QB scene a long time ago, and although I had always meant to return some day, I rightly know that I can't and never will. A month away became six months, then a year, and now four... that chapter of my life ends along with this article. Anyway, before I leave you poor bastards in peace once and for all (smile Mags), I would like to share with you the following programs from my early days. This is by no means a complete collection (many of my programs have unfortunately been lost), but it's something anyway. If this article didn't succeed in making you laugh, I'm sure these will. :)

RACER.BAS: The first driving game I ever made, though it hardly qualifies as one. I completed this on December 31st 1996, which makes it the oldest game in this collection. This is one of the first graphical games I ever made. Unfortunately, I was stuck using SCREEN 3 since all I had at the time was that black and white monitor. At around the same time I was working on an untitled graphical text adventure, inspired by Space Quest II - one of my favorite games of all time. If/when I find it, I'll send you a copy.

ROCKET.BAS: My first graphics demo. :) I can't remember when I made this, but based on the code, I'd say it's either January or February 1997.

STUNT.BAS: An incomplete Hollywood stunt driver typa thing, dating back to mid-1997. I thought the graphics were brilliant at the time... I have no idea why, heh. The setting's Hollywood, but I went and put up signs for exclusively South African shops (like CNA) heh. Some of the
names I just made up. (You can change the value of the S variable, anything up to 32, to affect which screen you're on.)

MONKEY.BAS: Monkey Shoot! Actually, this game sucks, maybe I should have called it Monkey Shit. I completed this some time in August, 1997. Kevin came up with the idea for this game in English class the one day, while some monkeys were playing on the roof. I think the fact that the first thing he thought of doing was shooting them speaks volumes about the mentality of the average schoolboy, heh.

DARK.EXE: Just a simple shooting in space typa thingy I completed on September 12th, 1998. It's the first game I made that my friends didn't think was crap. Their sentiment towards my ingenuity in making up names for my games was a little different though, heh.

F1RACE.BAS: Yet another racer that didn't get very far. I barely remember making this.

TC1.BAS: The first of the two Tank Commander games, completed on April 13th, 1999. Work actually started on this soon after the release of Wetspot 2. I originally had a much more ambitious game than this in mind, determined to compete with the likes of Angelo's masterpiece... In the end, I found that I had bitten off far more than I could chew, and after repeated failure, interest in the project was soon lost. The project gathered dust for almost a year, and then one weekend I
finally finished it off... Well, sort of. You may have noticed the complete lack of hit detection on the sides of the road? :) At that point I was so bloody sick of the game, I couldn't have cared less about doing a decent job, heh. I might have added it in if the game was a bit better, but it sucked, and I knew it - it was not the Tank Commander that was going to take the QB world by storm, as I had originally planned. An almost apologetic bit of blurb appeared in the
introductory text, a sort of half-assed attempt at passing the bug off as an exciting feature, heh. "...and the ability to demolish anything in their path. Even the tallest building is no match for these monsters!!!" There is no such thing as a bug in a videogame! To make matters worse, the credits screen smacks of irony... "Concept:  About a million other un-origional programmers ;)" Well... The spelling of that word is certainly very, ahem, origional, heh. :)

DESTROYR.BAS: A very simple mini-game, completed within 3 hours on May 3rd, 1999. Although it is outstanding in no way, I was very proud of it because the sprites didn't obliterate the background - a problem that had been driving me up the wall ever since I started programming.

3DRPG.BAS: An RPG engine (or at least an attempt at one) in a three-dimensional setting, which... Well, it didn't work very well did it? :) June 1999.

3DTRI.bas: My first "real" 3d program. Again, June 1999. I was very, VERY proud of this back in the day. :) The two main inspirations for this program (and what motivated me to try and overcome the seeminly insurmountable obstacle of learning 3d) was Xeno and Groov Buggies - the former in particular. I was determined to eventually make something similar, but ended up trying my hand at a Groov Buggies typa game instead. This is where all the problems started. :) The engine had
no perspective, and no backface culling. I didn't even know where to start with the backface culling, but on September 21st I finally managed to implement perspective correction, and came up...

DOOM.BAS: ...with this. Gosh but I was happy when I got this to work. :) At last work could begin on my driving game! Or not, heh. Being a clueless newbie and all, I didn't know that a pair of world coordinates may not be in line with or behind the camera - it took me until October 20th to figure that out. Self-confidence restored, I set out to solve the backface culling problem and... came up with bugger all, heh. At least until much later anyway, and by then I had other plans. So my driving game never got any further than Doom.bas. :) (Some of you might remember that I used this same program in my 3d tutorial in issue 3.)

TANK CCOMMANDER V2.ZIP: As the introductory text explains, it's just the same thing as before, but with much better code. August 15, 1999. I sent this to a bunch of QB sites later in the year.
(I would have sent it earlier, but I couldn't get my e-mail to work. Eventually someone on qbchat told me about hotmail, and I've been using that ever since.)

DLS.ZIP: All my games from Dark Legends Software. I don't need to talk about them here, there's more than enough waffle in the documentation. (Regarding Qbasic: The Rpg, I've never understood why people didn't immediately get that GODQB was actually a thinly-painted parody of the young Liquidex (formerly known as LordQBASIC). Duh!!)

-- Matthew Knight